package com.trace.meat.controller;

import com.trace.meat.entity.Animal;
import com.trace.meat.service.AnimalService;
import org.apache.ibatis.jdbc.Null;
import org.springframework.data.relational.core.sql.In;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
//http://127.0.0.1:11451/animal/selectOne?id=1

/**
 * (Animal)表控制层
 *
 * @author makejava
 * @since 2021-06-19 11:17:24
 */
@RestController
@RequestMapping("animal")
public class AnimalController {
    /**
     * 服务对象
     */
    @Resource
    private AnimalService animalService;

    /**
     * 通过主键查询单条数据
     *
     * @param aid 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public Animal selectOne(Integer aid) {
        return this.animalService.queryById(aid);
    }
    /**
     * 新增记录
     *
     * @param  time 出生时间
     * @param  type 类型
     * @param  breed 品种
     * @param  bid 饲养员id
     * @param  lastoid 最新订单号
     * @param  state 出生时间
     * @return 单条数据
     */
    //http://127.0.0.1:11451/animal/insertOne?time=2021-06-21&type=1&breed=1&bid=1&lastoid=1&state=1
    @GetMapping("insertOne")
    public  Animal Insert(String time, Integer type, Integer breed,Integer bid,Integer lastoid, short state)
    {
        Animal temp=new Animal();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期，比如2007/02/29会被接受，并转换成2007/03/01
            format.setLenient(false);
            format.parse(time);
        } catch (ParseException e) {
            System.out.println("时间输入格式错误");
            return null;
            // e.printStackTrace();
            // 如果throw java.text.ParseException或者NullPointerException，就说明格式不对
        }
        temp.setBirth(time);
        temp.setType(type);
        temp.setBreed(breed);
        temp.setBid(bid);
        temp.setState(state);
        if(lastoid!=null)//为0则为空
        {
            temp.setLastOid(lastoid);
        }
        System.out.println("插入成功："+temp.toString());
        return  this.animalService.insert(temp);
    }

    /**
     * 通过饲养员id查询多条数据
     *
     * @param  bid 饲养员id
     * @return 单条数据
     */
    @GetMapping("selectLine")
    public List<Animal> selectAllByBid(Integer bid)
    {
        return  this.animalService.queryAllByBid(bid);
    }
    /**
     * 通过主键删除数据
     *
     * @param  aid 主键
     * @return 是否删除成功的布尔值
     */
    public boolean deleteOne(Integer aid)
    {
        return this.animalService.deleteById(aid);

    }
    /**
     * 更新数据
     *
     * @param  id 主键
     * @param  time 出生时间
     * @param  type 类型
     * @param  breed 品种
     * @param  bid 饲养员id
     * @param  lastoid 最新订单号
     * @param  state 状态
     * @return 单条数据
     */
    public Animal update(Integer id,String time, Integer type, Integer breed,Integer bid,Integer lastoid,short state) {
        Animal temp=new Animal();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期，比如2007/02/29会被接受，并转换成2007/03/01
            format.setLenient(false);
            format.parse(time);
        } catch (ParseException e) {
            System.out.println("时间输入格式错误");
            return null;
            // e.printStackTrace();
            // 如果throw java.text.ParseException或者NullPointerException，就说明格式不对
        }
        temp.setBirth(time);
        temp.setType(type);
        temp.setBreed(breed);
        temp.setBid(bid);
        temp.setState(state);
        if(!lastoid.equals(0))//为0则为空
        {
            temp.setLastOid(lastoid);
        }
        temp.setAid(id);
        System.out.println("更新成功："+temp.toString());
        return animalService.update(temp);
    }

}
